Optimizing Binary Code Produced by Valgrind (Project Report on Virtual Execution Environments Course - AVExe)
نویسندگان
چکیده
Valgrind is a widely used framework for dynamic binary instrumentation and its mostly known by its memcheck tool. Valgrinds code generation module is far from producing optimal code. In addition it has many backends for different CPU architectures, which difficults code optimization in an architecture independent way. Our work focused on identifying sub-optimal code produced by Valgrind and optimizing it.
منابع مشابه
Trace Based Compilation in Interpreter-less Execution Environments
Trace based compilation is a technique used in managed language runtimes to detect and compile frequently executed program paths. The goal is reduced compilation time and improved code quality since only “hot” parts of methods are ever compiled. Trace compilation is well suited for interpreter based runtime environments because the control flow of an application program is highly visible and re...
متن کاملRuntime Code Generation with JVM and CLR
Modern bytecode execution environments with optimizing just-in-time compilers, such as Sun’s Hotspot Java Virtual Machine, IBM’s Java Virtual Machine, and Microsoft’s Common Language Runtime, provide an infrastructure for generating fast code at runtime. Such runtime code generation can be used for efficient implementation of parametrized algorithms. More generally, with runtime code generation...
متن کاملLoop Optimization in Managed Code Environments with Expressions Evaluated Only Once
This paper is concerned with optimizing code execution in virtual machine environments. Code motion is one of the many optimization techniques. We considered a special case of optimization – a loop containing expressions that can be effectively evaluated once. A solution for this case is discussed and two algorithms are proposed. Experimental results for Java VM, MS .NET and Mono are shown here...
متن کاملCompiler-guaranteed safety in code-copying VMs
Virtual Machine authors face a difficult choice: to settle for low performance, cheap interpreter, or to write a specialized and costly compiler. One of the methods to bridge the gap between these two distant solutions is to use the existing code-copying technique that reuses chunks of VM’s binary code creating a simple JIT. While simple in principle this technique is not reliable without a com...
متن کاملCatchconv: Symbolic execution and run-time type inference for integer conversion errors
We propose an approach that combines symbolic execution and run-time type inference from a sample program run to generate test cases, and we apply our approach to signed/unsigned conversion errors in programs. A signed/unsigned conversion error occurs when a program makes control flow decisions about a value based on treating it as a signed integer, but then later converts the value to an unsig...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید
ثبت ناماگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید
ورودعنوان ژورنال:
- CoRR
دوره abs/0810.0372 شماره
صفحات -
تاریخ انتشار 2008